/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.ucue.ptc.gco.dao;

import edu.ucue.ptc.gco.mdl.Producto;
import java.util.List;
import javax.ejb.Stateless;
import javax.inject.Inject;
import javax.inject.Named;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

/**
 *
 * @author Marcelo
 */
@Stateless
@Named(value="productoDao")
public class ProductoDAO implements ProductoDAOLocal {
    @PersistenceContext(unitName="edu.ucue.gped_gestionpedidosee-ejb_ejb_1.0-SNAPSHOTPU")
    private EntityManager entityManager;

    @Override
    public void crear(Producto producto) {
       
        entityManager.persist(producto);
        
    }

    @Override
    public void actualizar(Producto producto) {
        entityManager.merge(producto);
    }

    @Override
    public void eliminar(Producto producto) {
        eliminarPorId(producto.getIdProducto());
    }
    
    @Override
    public void eliminarPorId(int id) {
        Producto p = entityManager.find(Producto.class, id);
        if (p != null) {
            entityManager.remove(p);
        }
    }

    @Override
    public List<Producto> listarTodos() {
        Query query = entityManager.createQuery("select c from Producto c");
        return query.getResultList();
    }

    @Override
    public Producto obtenerPorId(int idProducto) {
        return entityManager.find(Producto.class, idProducto);
    }
    @Override
    public List<Producto> obtenerPorNombre(String NombrePedido) {
        
        int aa=0;
        Query query = entityManager.createQuery("select c from Producto  c where c.nombreProducto like :pnombrePedido");
        query.setParameter("pnombrePedido", "%"+NombrePedido+"%").getResultList();
        //query.setMaxResults(1);
        List<Producto> productos = query.getResultList();
        if (productos == null || productos.isEmpty()) {
            return null;
        }
        return productos;
    }

}
